var express = require('express');
var router = express.Router();
const sql = require('../sql/sql')
const pro = require("../sql/pro");

/* GET home page. */


/**
* @apiGroup 商品信息
* @api {get} /api/pro 获取所有商品数据
* @apiVersion 0.0.0
* @apiDescription 请求所有商品数据， ，哦吼
* @apiSuccess {number} code 请求状态
* @apiSuccess {string} title 请求说明
* @apiSuccess {array} msg 请求数据
* @apiSuccessExample {json} Success-Response:
* {
*    "code":200,
*    "title":"请求成功",
*    "msg":[{},{},...]
* }
* @apiError {number} code 请求状态
* @apiError {string} title 请求说明
* @apiError {array} msg 请求数据
* @apiErrorExample {json} Error-Response:
* {
*    "code":204,
*    "title":"请求失败",
*    "msg":"NOT DATA"
* }
* @apiSampleRequest http://localhost:3000/api/pro
*/

router.get('/', function(req, res, next) {
  sql.getData(pro ).then((data)=>{
      res.send({
        code: 200,
        title: "请求成功",
        msg:data
      })
  }).catch((err)=>{
    res.send({
        code: 204,
        title: "请求失败",
        msg:"NO DATA"
    })
  })
});

/**
* @apiGroup 商品信息
* @api {get} /api/pro/search  模糊搜索商品名称
* @apiVersion 0.0.0
* @apiDescription 模糊搜索商品名称，哇哈哈哈
* @apiParam {String} sKey="" 要搜索的关键字
* @apiSuccess {number} code 请求状态
* @apiSuccess {string} title 请求说明
* @apiSuccess {array} msg 请求数据
* @apiSuccessExample {json} Success-Response:
* {
*    "code":200,
*    "title":"请求成功",
*    "msg":[{},{},...]
* }
*{
*  code: 203,
*  title: "请求成功,请在输入框内输入要搜索的关字",
*  msg:[]
*     }
* @apiError {number} code 请求状态
* @apiError {string} title 请求说明
* @apiError {array} msg 请求数据
* @apiErrorExample {json} Error-Response:
* {
*    "code":204,
*    "title":"请求失败",
*    "msg":"NOT DATA"
* }
* @apiSampleRequest http://localhost:3000/api/search
*/
// 模塑搜索
router.get('/search', function(req, res, next) {
  // res.send(req.query)
  let searchData = req.query.sKey;
  sql.getData(pro,{goodsName:new RegExp(searchData)}).then((data)=>{
    if(data.length>0){  
    res.send({
      code: 200,
      title: "请求成功",
       msg:data
      })
    }else{
      res.send({
        code: 203,
        title: "请求成功,请在输入框内输入要搜索的关键字",
        msg:data
        })
    }
    }).catch((err)=>{
      res.send({
        code: 204,
        title: "请求失败",
        msg:"NO DATA"
      })
    })
  });

/**
* @apiGroup 商品信息
* @api {get} /api/pro/details  搜索商品详情
* @apiVersion 0.0.0
* @apiDescription 搜索商品详情，哇哈哈哈
* @apiParam {String} id="" 要搜索商品的id
* @apiSuccess {number} code 请求状态
* @apiSuccess {string} title 请求说明
* @apiSuccess {array} msg 请求数据
* @apiSuccessExample {json} Success-Response:
* {
*    "code":200,
*    "title":"请求成功",
*    "msg":[{},{},...]
* }
*{
*  code: 203,
*  title: "请求成功,请在输入框内输入要搜索的关字",
*  msg:[]
*     }
* @apiError {number} code 请求状态
* @apiError {string} title 请求说明
* @apiError {array} msg 请求数据
* @apiErrorExample {json} Error-Response:
* {
*    "code":204,
*    "title":"请求失败",
*    "msg":"NOT DATA"
* }
* @apiSampleRequest http://localhost:3000/api/details
*/
  // 商品详情
router.get('/details', function(req, res, next) {
  // res.send(req.query)
  let id = req.query.id;
  sql.getData(pro,{goodsId:id}).then((data)=>{
    if(data.length>0){  
    res.send({
      code: 200,
      title: "请求成功",
       msg:data
      })
    }else{
      res.send({
        code: 203,
        title: "请求成功,请在输入框内输入要搜索的关键字",
        msg:data
        })
    }
    }).catch((err)=>{
      res.send({
        code: 204,
        title: "请求失败",
        msg:"NO DATA"
      })
    })
  });



  /**
* @apiGroup 商品信息
* @api {get} /api/pro/sort 获取根据指定字段排序数据
* @apiVersion 0.0.0
* @apiDescription 获取根据指定字段排序数据
* @apiParam {String} col="price" 要排序的字段
* @apiParam {String} direct=1 升序或者降序，1表示升，-1表示绛
* @apiSuccess {number} code 请求状态
* @apiSuccess {string} title 请求说明
* @apiSuccess {array} msg 请求数据
* @apiSuccessExample {json} Success-Response:
* {
*    "code":200,
*    "title":"请求成功",
*    "msg":data
* }
* @apiError {number} code 请求状态
* @apiError {string} title 请求说明
* @apiError {array} msg 请求数据
* @apiErrorExample {json} Error-Response:
* {
*    "code":204,
*    "title":"请求失败",
*    "msg":"NOT DATA"
* }
* @apiSampleRequest http://localhost:3000/api/sort
*/
// 根据指定字段排序
router.get('/sort', function(req, res, next) {
  // 假设，将来会接收到的数据的格式或内容
    // req.query.col = "price"
    // req.query.direct = -1
  let a = {};
  a[req.query.col] = req.query.direct*1;
  sql.getSortData(pro,a).then((data)=>{
      res.send({
        code: 200,
        title: "请求成功",
        msg:data
      })
  }).catch((err)=>{
    res.send({
        code: 204,
        title: "请求失败",
        msg:"NO DATA"
    })
  })
});


  /**
* @apiGroup 商品信息
* @api {get} /api/pro/page 获取分页数据
* @apiVersion 0.0.0
* @apiDescription 获取分页数据
* @apiParam {Number} num=10 单页要显示的数据，默认
* @apiParam {Number} index=0 查询的页码，默认为零，表示第一页
* @apiSuccess {number} code 请求状态
* @apiSuccess {string} title 请求说明
* @apiSuccess {array} msg 请求数据
* @apiSuccessExample {json} Success-Response:
* {
*    "code":200,
*    "title":"请求成功",
*    "msg":data
* }
* @apiError {number} code 请求状态
* @apiError {string} title 请求说明
* @apiError {array} msg 请求数据
* @apiErrorExample {json} Error-Response:
* {
*    "code":204,
*    "title":"请求失败",
*    "msg":"NOT DATA"
* }
* @apiSampleRequest http://localhost:3000/api/page
*/
// 获取分页数据
router.get('/page', function(req, res, next) {
  // 假设，将来会接收到的数据的格式或内容
    // req.query.num = 10
    // req.query.index = 0
    let pageData = req.query
    sql.getPageData(pro,pageData.num*1,pageData.index*1).then((data)=>{
      res.send({
        code: 200,
        title: "请求成功",
        msg:data
      })
  }).catch((err)=>{
    res.send({
        code: 204,
        title: "请求失败",
        msg:"NO DATA"
    })
  })
});



  /**
* @apiGroup 商品信息
* @api {get} /api/pro/kind 获取商品分类
* @apiVersion 0.0.0
* @apiDescription 获取商品分类
* @apiSuccess {number} code 请求状态
* @apiSuccess {string} title 请求说明
* @apiSuccess {array} msg 请求数据
* @apiSuccessExample {json} Success-Response:
* {
*    "code":200,
*    "title":"请求成功",
*    "msg":data
* }
* @apiError {number} code 请求状态
* @apiError {string} title 请求说明
* @apiError {array} msg 请求数据
* @apiErrorExample {json} Error-Response:
* {
*    "code":204,
*    "title":"请求失败",
*    "msg":"NOT DATA"
* }
* @apiSampleRequest http://localhost:3000/api/kind
*/
// 获取分类数据
router.get('/kind', function(req, res, next) {
    sql.getKind(pro,"classify").then((data)=>{
      res.send({
        code: 200,
        title: "请求成功",
        msg:data
      })
  }).catch((err)=>{
    res.send({
        code: 204,
        title: "请求失败",
        msg:"NO DATA"
    })
  })
});


module.exports = router;

